package cn.yx.common.mybatis.mapper;

import cn.yx.common.core.pojo.singletable.SingleCond;
import cn.yx.common.mybatis.pojo.SingleDo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.io.Serializable;
import java.util.List;

/**
 * <p>BasePlusMapper接口，扩展MyBatis-plus的BaseMapper接口</p>
 *
 * @param <Do>   DO类
 * @param <Cond> Cond类
 * @param <Id>   ID主键值类
 * @author Wgssmart
 */
public interface BasePlusMapper<Do extends SingleDo, Cond extends SingleCond, Id extends Serializable> extends BaseMapper<Do> {

    /**
     * 批量插入数据到数据库中
     *
     * @param entityList DO实体类集合
     * @return 返回插入的行数
     */
    int insertBatch(List<Do> entityList);

    /**
     * 根据对象集合批量更新数据库中的数据
     *
     * @param entityList DO实体类集合
     * @return 返回更新的行数
     */
    int updateBatchIds(List<Do> entityList);

    /**
     * 根据主键获取记录版本号
     *
     * @param id 主键字段值
     * @return 记录版本号
     */
    Integer selectVersionById(Id id);

}
